Skip to main content

Ampliación de un bloque de funciones

General

La extensión de un bloque de funciones se basa en el concepto de herencia en la programación orientada a objetos. Para ello, un bloque de función derivado "amplía" un bloque de función básico y, por lo tanto, recibe las propiedades del bloque de función básico además de sus propias propiedades.

La extensión de un bloque de función significa:

  • El bloque de funciones derivado contiene todos los datos y métodos definidos por el bloque de funciones base. Puede utilizar una instancia del bloque de función básico en cualquier contexto en el que CODESYS espera un bloque de funciones del tipo de bloque de funciones básico.

  • El módulo de función derivado puede sobrescribir los métodos que ha definido en el módulo de función base. Esto significa: El bloque de funciones derivado puede definir un método con el mismo nombre, entradas y salidas definidas por el bloque de funciones base.

    Sugerencia: Se proporciona el siguiente soporte para esta sobrescritura de los métodos, acciones, propiedades y transiciones heredados del bloque básico. Si inserta un método, acción, etc. debajo del bloque de construcción derivado, obtiene el cuadro de diálogo añadir objeto un cuadro combinado con una selección de los métodos, acciones, etc. utilizados en el módulo básico y puede aceptarlos, solo para luego adaptarlos en consecuencia.

  • El bloque de funciones derivado no debe contener una variable de bloque de funciones con el mismo nombre que utiliza el bloque de funciones base. El compilador informa esto como un error.

    La única excepción: si utiliza una variable en el bloque de función básico como VAR_TEMP declarado, entonces el bloque de función derivado puede definir una variable con el mismo nombre. En este caso, el bloque de funciones derivado ya no puede acceder a la variable del bloque de funciones básico.

  • Puede usar las variables y los métodos del bloque de funciones base dentro del alcance del bloque de funciones derivado usando el SUPER- Punteros de dirección directamente.

Importante

No se permite la herencia múltiple.

Excepción: un bloque de funciones puede implementar varias interfaces y una interfaz puede ampliar otras interfaces.

Ampliación de un bloque de funciones básico con un nuevo bloque de funciones

Requisito: El proyecto actualmente abierto tiene un bloque de función básico, por ejemplo POU_1 (FB), que se ampliará con un nuevo módulo de funciones.

  1. Seleccione el objeto Solicitud en el árbol de dispositivos y seleccione el comando de menú Proyecto → Agregar objeto → POU.

    El diálogo Añadir POU se abre

  2. Introduzca un nombre para el nuevo módulo de funciones en el campo de entrada Apellido una, por ejemplo POU_Ex.

  3. Escoger bloque de funciones.

  4. Escoger avanzado y haga clic en el botón _cds_icon_input_assistent.png.

  5. En el asistente de entrada, elija de la categoría bloques de funciones bajo Solicitud el POU(FB) que va a servir como bloque funcional básico, por ejemplo POU_1 y haga clic OK.

  6. Opcionalmente puedes tener uno modificador de acceso para el nuevo bloque de funciones del cuadro combinado.

  7. Elija del cuadro combinado lenguaje de implementación por ejemplo Texto estructurado (ST) fuera.

  8. haga clic en añadir.

    CODESYS agrega el bloque de función POU_Ex en el árbol de dispositivos y se abre el editor. La primera línea dice:

    FUNCTION_BLOCK POU_Ex EXTENDS POU_1

    El bloque de funciones POU_Ex amplía el bloque de funciones básico POU_1.

Ampliación de un bloque de funciones básico con un bloque de funciones existente

Requisito: El proyecto actualmente abierto tiene un bloque de función básico, por ejemplo POU_1(FB), y otro bloque de funciones, por ejemplo POU_Ex(FB). El bloque de funciones POU_Ex(FB) también debe tener las propiedades del bloque de función básico. Eso significa: POU_Ex(FB) objetivo POU_1(FB) expandir.

  1. Haga doble clic en el bloque de funciones en el árbol de dispositivos POU_Ex(FB).

    Se abre el editor del bloque de funciones.

  2. Expandir la entrada de la fila superior existente FUNCTION_BLOCK POU_Ex Con EXTENDS POU_1.

    El bloque de funciones POU_Ex amplía el bloque de funciones básico POU_1.

Para más información, ver: Implementar una interfaz y Ampliar una interfaz

Soporte de entrada al generar POU heredadas

Al realizar una programación orientada a objetos y utilizar la herencia (EXTENDS palabra clave) de las POU, puede obtener soporte de la siguiente manera:

Cuando inserta una acción, una propiedad, un método o una transición debajo de una POU derivada de una POU base, el Agregar … se abre el cuadro de diálogo. Luego, el campo de entrada para el nombre se extiende a un cuadro de lista. El cuadro de lista contiene una selección válida de las acciones, propiedades, métodos o transiciones disponibles en la POU base. Ahora puede, por ejemplo, aceptar fácilmente un método de la POU base y luego adaptarlo a la función derivada de la POU.

Métodos y propiedades con el modificador de acceso PRIVATE no se enumeran aquí porque tampoco se heredan. Métodos y propiedades con el modificador de acceso PUBLIC obtiene automáticamente un campo modificador de acceso en blanco al aceptar en la POU derivada, lo que significa lo mismo funcionalmente.

Para obtener más información, consulte: Propiedad, Método, Transición, Acción,

ejemplo 29. Ejemplo
_cds_img_input_wizzard_for_blocks.png